#!/bin/bash
# visualvm
# 下载地址　https://github.com/oracle/visualvm/releases

# jstatd jmx　区别　https://dzone.com/articles/visualvm-monitoring-remote-jvm
# jstatd　远程采样不支持，更丰富的支持使用jmx模式

# jstatd
:<<EOF
#openjdk 15 es部署环境没有这个tools.jar
cat <<EOFP > /usr/share/elasticsearch/jdk/bin/jstatd.all.policy
grant codebase "file:\${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
EOFP

直接修改jdk的内容设置，在jdk的\JRE\LIB\SECURITY下把java.policy文件的
grant{
。。。。。
}；
的最后加入
permission java.security.AllPermission;

cd /usr/share/elasticsearch/jdk/bin
# -J-Djava.security.policy=/usr/share/elasticsearch/jdk/bin/jstatd.all.policy 
./jstatd -J-Djava.rmi.server.logCalls=true -J-Djava.rmi.server.hostname=172.19.0.2 -p 1099
EOF

#JMX
# 
:<<EOF
# netstat -na|grep 9090
tcp        0      0 0.0.0.0:9090  
如果绑定的地址是127.0.0.1，此时需要设置java.rmi.server.hostname

-Djava.rmi.server.hostname=172.19.0.2
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
EOF